﻿using FreeSql.DatabaseModel;using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Newtonsoft.Json;
using FreeSql.DataAnnotations;

namespace Unis.FMS.Platform.Order.Domain {

	[JsonObject(MemberSerialization.OptIn), Table(Name = "doc_dpt_task_packages", DisableSyncStructure = true)]
	public partial class DocDptTaskPackages {

		[JsonProperty, Column(Name = "id", DbType = "int", IsPrimary = true, IsIdentity = true)]
		public int Id { get; set; }

		/// <summary>
		/// 实际创建时间,客户端操作实际发生时间,UTC
		/// </summary>
		[JsonProperty, Column(Name = "actual_create_time", DbType = "datetime")]
		public DateTime ActualCreateTime { get; set; } = DateTime.Parse("1970-01-01 00:00:00");

		/// <summary>
		/// 实际更新时间,客户端操作实际发生时间,UTC
		/// </summary>
		[JsonProperty, Column(Name = "actual_update_time", DbType = "datetime")]
		public DateTime ActualUpdateTime { get; set; } = DateTime.Parse("1970-01-01 00:00:00");

		/// <summary>
		/// 创建人
		/// </summary>
		[JsonProperty, Column(Name = "create_user", StringLength = 50, IsNullable = false)]
		public string CreateUser { get; set; }

		/// <summary>
		/// 创建人
		/// </summary>
		[JsonProperty, Column(Name = "created_by", DbType = "int")]
		public int CreatedBy { get; set; } = 0;

		/// <summary>
		/// 创建时间
		/// </summary>
		[JsonProperty, Column(Name = "created_time", DbType = "datetime", InsertValueSql = "CURRENT_TIMESTAMP")]
		public DateTime CreatedTime { get; set; }

		/// <summary>
		/// 包裹密度
		/// </summary>
		[JsonProperty, Column(Name = "freight_class", DbType = "decimal(11,2)")]
		public decimal FreightClass { get; set; } = 0.00M;

		/// <summary>
		/// 高
		/// </summary>
		[JsonProperty, Column(Name = "height", DbType = "decimal(11,2)")]
		public decimal Height { get; set; } = 0.00M;

		/// <summary>
		/// 是否删除（0.正常 1.删除）;0.正常 1.删除
		/// </summary>
		[JsonProperty, Column(Name = "is_del", DbType = "int")]
		public int IsDel { get; set; } = 0;

		/// <summary>
		/// 货品数量
		/// </summary>
		[JsonProperty, Column(Name = "item_count", DbType = "int")]
		public int ItemCount { get; set; } = 0;

		/// <summary>
		/// 长
		/// </summary>
		[JsonProperty, Column(Name = "length", DbType = "decimal(11,2)")]
		public decimal Length { get; set; } = 0.00M;

		/// <summary>
		/// 尺寸单位
		/// </summary>
		[JsonProperty, Column(Name = "linear_uom", StringLength = 50, IsNullable = false)]
		public string LinearUom { get; set; }

		/// <summary>
		/// package id
		/// </summary>
		[JsonProperty, Column(Name = "package_id", DbType = "bigint")]
		public long PackageId { get; set; } = 0;

		/// <summary>
		/// tracking/pro_no + package_sequence+包裹号
		/// </summary>
		[JsonProperty, Column(Name = "package_no", StringLength = 50, IsNullable = false)]
		public string PackageNo { get; set; }

		/// <summary>
		/// package_sequence
		/// </summary>
		[JsonProperty, Column(Name = "sequence", DbType = "int")]
		public int Sequence { get; set; } = 0;

		/// <summary>
		/// do 单号
		/// </summary>
		[JsonProperty, Column(Name = "shipment_order_no", StringLength = 50, IsNullable = false)]
		public string ShipmentOrderNo { get; set; }

		/// <summary>
		/// 包裹状态
		/// </summary>
		[JsonProperty, Column(Name = "status", DbType = "int")]
		public int Status { get; set; } = 1;

		/// <summary>
		/// task no
		/// </summary>
		[JsonProperty, Column(Name = "task_no", DbType = "bigint")]
		public long TaskNo { get; set; } = 0;

		/// <summary>
		/// tracking
		/// </summary>
		[JsonProperty, Column(Name = "tracking_no", StringLength = 50, IsNullable = false)]
		public string TrackingNo { get; set; }

		/// <summary>
		/// 更新人
		/// </summary>
		[JsonProperty, Column(Name = "update_by", DbType = "int")]
		public int UpdateBy { get; set; } = 0;

		/// <summary>
		/// 更新时间
		/// </summary>
		[JsonProperty, Column(Name = "update_time", DbType = "datetime", InsertValueSql = "CURRENT_TIMESTAMP")]
		public DateTime UpdateTime { get; set; }

		/// <summary>
		/// 修改人
		/// </summary>
		[JsonProperty, Column(Name = "update_user", StringLength = 50, IsNullable = false)]
		public string UpdateUser { get; set; }

		/// <summary>
		/// 体积
		/// </summary>
		[JsonProperty, Column(Name = "volume", DbType = "decimal(11,2)")]
		public decimal Volume { get; set; } = 0.00M;

		/// <summary>
		/// 体积单位
		/// </summary>
		[JsonProperty, Column(Name = "volume_uom", StringLength = 50, IsNullable = false)]
		public string VolumeUom { get; set; }

		/// <summary>
		/// 重量
		/// </summary>
		[JsonProperty, Column(Name = "weight", DbType = "decimal(11,2)")]
		public decimal Weight { get; set; } = 0.00M;

		/// <summary>
		/// 重量单位
		/// </summary>
		[JsonProperty, Column(Name = "weight_uom", StringLength = 50, IsNullable = false)]
		public string WeightUom { get; set; }

		/// <summary>
		/// 宽
		/// </summary>
		[JsonProperty, Column(Name = "width", DbType = "decimal(11,2)")]
		public decimal Width { get; set; } = 0.00M;

	}

}
